/**
 * @file RTC.h
 * @brief 实时时钟驱动头文件
 * @details 定义RTC相关的宏定义、函数声明和数据结构
 * @author 开发者
 * @date 创建日期
 */

#ifndef __RTC__H__
#define __RTC__H__

/* 系统头文件包含 */
#include "gd32f4xx.h"         // GD32F4xx系列MCU标准外设库
#include "uart.h"             // 串口驱动头文件
#include <stdio.h>            // 标准输入输出库

/* BCD码转换宏定义 */
#define READ_BCD(val) 	(val >> 4) * 10 + (val & 0x0F)   // BCD转十进制
#define WRITE_BCD(val) 	((val / 10) << 4) + (val % 10)   // 十进制转BCD

/* 函数声明 */
/**
 * @brief RTC初始化函数声明
 * @details 配置RTC时钟源、预分频器，设置初始时间
 */
void rtc_Init(void);

/**
 * @brief 获取RTC时间并格式化显示函数声明
 * @param YMD 年月日输出缓冲区
 * @param HMS 时分秒输出缓冲区
 * @details 从RTC读取当前时间，格式化为字符串显示
 */
void rtc_get_time(char * YMD, char * HMS);

#endif
